MPLABによるプログラムのアセンブル編

MPLABを使ってみよう!


PICターゲット側(PIC周辺回路)の動作チェックをします。ここで初めてボードとプログラムソフトの動作確認ができます。動作確認のプログラムを用意しましたので、ダウンロードして使ってください。プログラムの内容は、ボードの動作チェックが目的ですので、各ポートごとに発光ダイオードを点灯させるプログラムとなっています。まず、記述したプログラムをPICが理解できるデータに変換する必要があります。これをMPLABで行います。
WINDOWSのタスクバーのスタートより、プログラム()のMicrochip MPLABから、[MPLAB」をクリックしてください。図1のようなMPLABのロゴが表示され、MPLABが起動します。

MPLABのロゴマーク
図1.MPLABのロゴマーク


<項目>MPLABのプロジェクトの登録
プログラムを開発するときには、「プロジェクト」として登録します。図2に示すようにMPLABの左上の表示画面にある「roject」から[ew Project...」をクリックすると、図3の「New Project」というダイアログボックスが開きます。

MPLABの左上の表示画面
図2.MPLABの左上の表示画面

ここで、プロジェクトの名称登録を要求されるので、(プロジェクト名).prjとして登録します。例えば、「File ame:」のところで、spectrum.prj とでもしておきましょう。「OK」をクリックします。

New Projectダイアログボックス
図3.New Projectダイアログボックス


そうすると、次に図4のような「Edit Project」というダイアログボックスが開きますので、プロジェクト内容を登録していきます。「Development Mode:」の欄で、「Change...」ボタンをクリックすると、

Edit Projectダイアログボックス
図4.Edit Projectダイアログボックス

図5のような「Development Mode」というダイアログボックスが開きます。「Development Mode」の「Tools」でPICの種別を指定できます。「Processor:」のデフォルトは「PIC16F84」になっていますので、▼ボタンで「16F877」に設定します。また、「None(Editor Only)」に初めはチェックがついていますが、このままではシミュレーションができません。
ここがポイント!
必ず、「MPLAB−SIM imulator」を指定してください。

そうすると中央の空欄に下記にメッセージが表示されます。
Not all peripherals have support for simulation.
Serial I/O is not simulated.
Click 'Details' for additional information on PIC16F877.

Development Mode(Tools)ダイアログボックス
図5.Development Mode(Tools)ダイアログボックス


ついでに、「Clock」のタブをクリックして、クロックの発振タイプと周波数も設定しておきましょう。図6のような「Clock」のダイアログ・ボックスが開きます。「Oscillator Type:」ですが、初めは「LP」となっていますが、ここは「HS」に設定します。クロックの発振モードについては、表1をご覧ください。「Desired Frequency:」は「4MHz」となっていますが、ボードに使用しているセラミック発振子の周波数である「20MHz」に設定します。これで「OK」ボタンを押せば図3の「Edit Project」に戻ります。このときhexファイルがないというメッセージが出ますが、無視して「OK」ボタンを押します。

Development Mode(Clock)ダイアログボックス
図6.Development Mode(Clock)ダイアログボックス

発振回路を形成するのに使うPIC内部の回路には4種類の発振モードがあり、接続する振動子の種類によって表1のように使い分けます。通常は「HS」にします。

表1.クロック発振モード一覧
モード 説明 発振周波数範囲 特徴
LP 低電力/水晶発振
(Low Power X'tal)
200kHz以下 極低消費電力動作が可能
XT 水晶/セラミック発振
(X'tal/Resonator)
4MHz以下 標準的
HS 高周波水晶/セラミック発振
(High Speed X'tal/Resonator)
4MHz〜20MHz 高速動作
RC nowrapRC発振
(Resister/Capacitor)
約1MHz以下
(4MHzもあり)
周波数精度は悪いが安価


つぎに、図4の「Edit Project」ダイアログボックスに戻り、Project Filesのファイル「spectrum.hex」をマウスでクリックして選択してから「Node Properties」をクリックすると、図7の「Node Property」ダイアログが開きます。

Node Propertiesダイアログボックス
図7.Node Propertiesダイアログボックス

この中の設定は、
「Hex Format」 → 「INHX8M」をチェック(出力するHexファイルのフォーマット指定)
「Warning level」 → 「all」をチェック(すべてのレベルのワーニングメッセージを出す)
「Case sensitivity」 → 「OFF」をチェック(大文字、小文字の区別なしの設定)
最後にOKを押してダイアログを閉じます。

次に「Add Node...」ボタンをクリックすると、図8のようなソースファイルの名前を設定する「Add Node」ダイアログボックスが開きます。(プロジェクト名).asmとして指定します。例えばファイル名()に spectrum.asmと設定し、「OK」をクリックします。

Add Nodeダイアログボックス
図8.Add Nodeダイアログボックス

図4の「Edit Project」ダイアログボックスに戻り、以上でプロジェクトの登録が完了したので、「OK」ボタンを押します。これでアセンブラのプログラムを開発する準備が整いました。



<項目>テキスト・エディタによるソース・ファイルの作成
さて、いよいよ実際のプログラムを作成する段階に入りました。図2に示すMPLABの左上の表示画面にある「ile」をクリックし、[ew]と操作するとエディタ画面になります。このエディタでプログラムを入力していきます。ただし、このエディタでは日本語のコメントを扱うことはできません。日本語のコメントを付けるには、別のテキスト・エディタですでに入力したものを使うので、「ile」をクリックし、[pen...]で開きます。図9は、MPLABのディレクトリに別のテキスト・エディタで作成しておいた「spectrum.asm」というファイルを指定したところです。

Open Existing Fileダイアログボックス
図9.Open Existing Fileダイアログボックス

図10に、spectrum.asm というソースファイルを示します。内容はPICのPortBの発光ダイオードを点灯させるプログラムとなっています。10行に満たないプログラムですが、ボードの動作チェックを目的としていますので記述は極力簡単な構成にします。初めから複雑なプログラムを作成してもデバッグに時間がかかり、また動作しない場合にはプログラムが悪いのか、ボードが悪いのか判断が難しくなります。
(注)このソースプログラムは、こちらでダウンロードしてください。
<ダウンロードする>

spectrum.asmのソースファイル
図10. spectrum.asmのソースファイル



<項目>早速 アセンブルしてみよう!
さて、いよいよソース・ファイルの作成が完了したら、早速アセンブルしてみます。図2に示すMPLABの左上の表示画面にある「roject」をクリックし、[ake Project]と操作するとアセンブルが開始されます。プログラムが短いのでアセンブル時間は数秒で終了します。アセンブルの結果は「Build Results」のダイアログで教えてくれます。ソースファイルの記述に間違いがあると、「Error」とか、「Build failed.」などと表示されるので、そのエラー行をダブル・クリックすれば、ソースファイルの誤りのある行にカーソルが移動するので、誤りを素早く知ることができます。
図11のような「Build Results」画面で、「Build completed successfully.」と表示されれば完了です。ここで、Message[302] C:\PROGRA~1\MPLAB\SPECTRUM.ASM 11 : Register in operand not in bank 0. Ensure that bank bits are correct. というメッセージが出ますが無視してください。

Build Results画面
図11. Build Results画面

誤りがなくなればMakeが成功してオブジェクトファイルと呼ばれる(プロジェクト名).hexファイルが自動生成されます。このファイルがPICへ書き込むためのプログラムそのものです。
例えば、spectrum.asmのソースファイルをアセンブルすると、spectrum.hexというオブジェクトファイルが生成され、その内容は下記のようになっています。

:0A000000831686018312FF3086008C
:00000001FF



<戻る>
<TOPページへ>



PC用眼鏡【管理人も使ってますがマジで疲れません】 解約手数料0円【あしたでんき】 Yahoo 楽天 NTT-X Store

無料ホームページ 無料のクレジットカード 海外格安航空券 ふるさと納税 海外旅行保険が無料! 海外ホテル